package io;

/**
 * Created with IntelliJ IDEA
 * Description:
 * User: Administrator
 * Data: 2023 - 09 - 23
 * Time: 9:19
 */
//IO案例2 进行普通文件的复制
import java.io.*;
import java.util.*;
public class Demo2 {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入要复制文件的路径：");
        String srcPath = scanner.nextLine();
        File srcfile = new File(srcPath);
        if(!srcfile.exists()) {
            System.out.println("输入的路径不存在，请确认路径是否正确");
            return;
        }
        if(!srcfile.isFile()) {
            System.out.println("输入的路径的文件不是普通文件，请确认路径是否正确");
            return;
        }
        System.out.print("请输入要复制到的目标路径:");
        String destPath = scanner.nextLine();
        File destfile = new File(destPath);
        if(destfile.exists()) {
            if(destfile.isDirectory()) {
                System.out.println("输入要复制到的目标路径是一个目录，请确认路径是否正确");
                return;
            } else if (!destfile.isFile()) {
                System.out.println("输入要复制到的目标路径不是一个普通文件，请确认路径是否正确");
                return;
            } else {
                System.out.println("输入要复制到的目标路径是一个普通文件，是否要将这个文件覆盖掉(y/n):");
                String choice = scanner.nextLine();
                if(!choice.equals("y")) {
                    System.out.println("停止复制");
                    return;
                }
            }
        }else {
            System.out.println("输入要复制到的目标路径不存在，，请确认路径是否正确");
            return;
        }
        try(InputStream is = new FileInputStream(srcfile)) {
            try(OutputStream os = new FileOutputStream(destfile)) {
                byte[] b = new byte[1024];
                int n = 0;
                while(true) {
                    n = is.read(b);
                    if(n == -1) break;
                    os.write(b);
                }
            }
        }
        System.out.println("复制成功");
    }
}
